﻿/********************************************************/
/* For 基于.NET的开发技术 课程设计                      */
/*                    学生选课系统                      */
/*author    ：  吴慧文                                  */
/*time      ：  2009年11月8日                           */
/*版本      ：  1.0                                     */
/*文件名    ：  Student.cs                              */
/********************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CMS
{
    [Serializable]
    class Student
    {
        private string id;
        private string name;
        private string pwd;
        private Courses myCourses;

        //构造函数
        public Student(string s1,string s2,string s3,Courses cs)
        {
            this.Id = s1;
            this.Name = s2;
            this.Pwd = s3;
            this.MyCourses = cs;
        }

        public string Id
        {
            get
            {
                return this.id;
            }
            set
            {
                this.id = value;
            }
        }

        public string Name
        {
            get
            {
                return this.name;
            }
            set
            {
                this.name = value;
            }
        }

        public string Pwd
        {
            get
            {
                return this.pwd;
            }
            set
            {
                this.pwd = value;
            }
        }

        public Courses MyCourses
        {
            get
            {
                return this.myCourses;
            }
            set
            {
                this.myCourses = value;
            }
        }

        //增加课程，不可以同时添加一周中同一时间上课的两门课。
        public bool addCourse(Course course)
        {
            //判断该课程是否已经添加，和 时间是否有冲突
            for (int i = 0; i < MyCourses[""].Count; i++)
            {
                if (MyCourses[""].ElementAt(i).DayOfWeek == course.DayOfWeek
                    && MyCourses[""].ElementAt(i).NumOfDay == course.NumOfDay)
                {
                    return false;   
                }
            }
            this.MyCourses.addCourse(course);
            return true;
        }

        //删除课程
        public void deleteCourse(Course course)
        {
            this.MyCourses.deleteCourse(course);
        }

        //获取课表信息
        public string getCoursesInfo()
        {
            string result = null;
            for (int i = 0; i < MyCourses[""].Count; i++)
            {
                result += MyCourses[""].ElementAt(i).toString();
                result += "\n";
            }
            return result;
        }

        //重载Equal函数
        public bool Equals(Student student)
        {
            if (this.Id.Equals(student.Id))
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        public string toString()
        {
            string result = null;
            result = this.Id + "\t\t" + this.Name + "\t\t" + this.Pwd;
            return result;
        }

        public string toStringWithoutPsw()
        {
            string result = null;
            result = this.Id + "\t\t" + this.Name;
            return result;
        }
    }
}
